#include "sort.h"
//排序的接口
//冒泡排序
void BubbleSort(int* a,int n)
{
  int i;
  for(i = 0; i < n; i++)
  {
    int j;
    int flag = -1;
    for(j = 0; j < n - i - 1; j++)
    {
      if(a[j] < a[j+1])
      {
        Swap(&a[j],&a[j+1]);
        flag = 1;
      }
    }
    if(flag == -1)
    {
      break;
    }
  }
}

//最好：
//最坏：
void InsertSort(int*a,int n);


//希尔排序
//时间复杂度：
//最好：
//最坏：
void ShellSort(int*a,int n);


//堆排序
//时间复杂度：
//最好：
//最坏：
void HeapSort(int*a,int n);

//快速排序
//时间复杂度：
//最好：
//最坏：
void QuickSort(int*a,int n);


//交换排序
//时间复杂度：
//最好：
//最坏：
void SwapSort(int*a,int n);


//计数排序
//时间复杂度：
//最好：
//最坏：
void CountSort(int*a,int n);

void Print(int* a,int n)
{
  int i;
  for(i = 0; i < n ; i++)
  {
    printf("%d ",a[i]);
  }
  printf("\n");
}

void TestBubbleSort()
{
  int arr[] = {3, 4, 5, 1, 6, 7, 8, 9, 2, 10};
  int n = sizeof(arr)/sizeof(arr[0]);
  BubbleSort(arr,n);
  Print(arr,n);
}

int main()
{
  TestBubbleSort();
  return 0;
}
